import http from './http'

/**
 * 获取所有运动类型
 * @returns {Promise<Array>} 运动类型列表
 */
export function getAllExerciseTypes() {
  return http.get('/api/exercise-types')
}

/**
 * 获取运动类型列表（带分页）
 * @param {Object} params 查询参数
 * @returns {Promise} 响应Promise
 */
export function getExerciseTypes(params) {
  return http.get('/api/exercise-types', { params })
}

/**
 * 获取指定ID的运动类型
 * @param {number} id 运动类型ID
 * @returns {Promise<Object>} 运动类型对象
 */
export function getExerciseType(id) {
  return http.get(`/api/exercise-types/${id}`)
}

/**
 * 获取指定ID的运动类型
 * @param {number} id 运动类型ID
 * @returns {Promise<Object>} 运动类型对象
 */
export function getExerciseTypeById(id) {
  return http.get(`/api/exercise-types/${id}`)
}

/**
 * 获取指定名称的运动类型
 * @param {string} name 运动类型名称
 * @returns {Promise<Object>} 运动类型对象
 */
export function getExerciseTypeByName(name) {
  return http.get(`/api/exercise-types/by-name/${name}`)
}

/**
 * 获取指定分类的运动类型
 * @param {string} category 分类名称，如"CARDIO"、"STRENGTH"等
 * @returns {Promise<Array>} 运动类型列表
 */
export function getExerciseTypesByCategory(category) {
  return http.get(`/api/exercise-types/by-category/${category}`)
}

/**
 * 获取所有运动类型分类
 * @returns {Promise} 响应Promise
 */
export function getExerciseTypeCategories() {
  return http.get('/api/exercise-types/categories')
}

/**
 * 创建新的运动类型（仅管理员可用）
 * @param {Object} exerciseType 运动类型对象
 * @returns {Promise<Object>} 创建的运动类型对象
 */
export function createExerciseType(exerciseType) {
  return http.post('/api/exercise-types', exerciseType)
}

/**
 * 更新运动类型（仅管理员可用）
 * @param {number} id 运动类型ID
 * @param {Object} exerciseType 更新的运动类型对象
 * @returns {Promise<Object>} 更新后的运动类型对象
 */
export function updateExerciseType(id, exerciseType) {
  return http.put(`/api/exercise-types/${id}`, exerciseType)
}

/**
 * 删除运动类型（仅管理员可用）
 * @param {number} id 运动类型ID
 * @returns {Promise<Object>} 操作结果消息
 */
export function deleteExerciseType(id) {
  return http.delete(`/api/exercise-types/${id}`)
} 